package pe.com.pgn.consolidadorventas.servidorcentral.dbo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Formula;

@Entity
@Table(name = "CVEN_ARCHIVOS")
@SequenceGenerator(name = "SEQ_CVEN_ARCHIVOS", sequenceName = "SEQ_CVEN_ARCHIVOS", allocationSize = 1)
public class Archivo implements Serializable{

	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "idArchivo",unique = true, nullable = false)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_CVEN_ARCHIVOS")
	private int idArchivo;
	
	@Column(name = "Estaciones_idEstacion")
	private int idEstacion;
	
	@Column(name = "fecha")
	private Date fecha;
	
	@Column(name = "tipoArchivo")
	private int tipoArchivo;

	@Column(name = "tipoCarga")
	private int tipoCarga;
	
	@Column(name = "descripcionCarga")
	private String descripcionCarga;
	
	/*
	@Formula(value = "(select to_char(a.fecha,'dd/MM/yyyy') from archivos a where a.idArchivo = idArchivo)")
	private String fechaRegistro;
	*/
	
	@Formula(value = "to_char(fecha,'dd/MM/yyyy')")
	private String fechaRegistro;

	public int getIdArchivo() {
		return idArchivo;
	}

	public void setIdArchivo(int idArchivo) {
		this.idArchivo = idArchivo;
	}

	public int getIdEstacion() {
		return idEstacion;
	}

	public void setIdEstacion(int idEstacion) {
		this.idEstacion = idEstacion;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public int getTipoArchivo() {
		return tipoArchivo;
	}

	public void setTipoArchivo(int tipoArchivo) {
		this.tipoArchivo = tipoArchivo;
	}

	public int getTipoCarga() {
		return tipoCarga;
	}

	public void setTipoCarga(int tipoCarga) {
		this.tipoCarga = tipoCarga;
	}
	
	public String getFechaRegistro() {
		return fechaRegistro;
	}

	public void setFechaRegistro(String fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}
	
	public String getDescripcionCarga() {
		return descripcionCarga;
	}

	public void setDescripcionCarga(String descripcionCarga) {
		this.descripcionCarga = descripcionCarga;
	}

	@Override
	public boolean equals(Object obj) {
		Archivo a = (Archivo)obj;
		boolean sw = false;
		if(this.getFecha().equals(a.getFecha()) &&
		   this.getTipoArchivo() == a.getTipoArchivo() &&
		   this.getTipoCarga() == a.getTipoCarga()){
		   sw = true;
		}
		return sw;
	}

	@Override
	public String toString() {
		return "Archivo [idArchivo=" + idArchivo + ", idEstacion=" + idEstacion
				+ ", fecha=" + fecha + ", tipoArchivo=" + tipoArchivo
				+ ", tipoCarga=" + tipoCarga + ", descripcionCarga="
				+ descripcionCarga + ", fechaRegistro=" + fechaRegistro + "]";
	}
	
}
